#ifdef FILE_SYNC_CORE_EXPORTS
#define FILE_SYNC_CORE_API WINAPI
#else
#define FILE_SYNC_CORE_API __declspec(dllimport) WINAPI
#endif

#ifndef _FILE_SYNC_CORE_
#define _FILE_SYNC_CORE_

#if defined __cplusplus
extern "C" {
#endif

//#pragma pack(push)
//#pragma pack(1)

struct _JobItemInfo
{
	LPWSTR lpExcludePath;
	LPWSTR lpExcludeType;
	LPWSTR lpSourceDir;
	LPWSTR lpTargetDir;
	BOOL bCheckMD5;
	BOOL bSafeCopy;
};

//#pragma pack(pop)

typedef struct _JobItem* HJOB;

HJOB		FILE_SYNC_CORE_API FS_AddJobItem(const _JobItemInfo* pJobItemInfo);
BOOL		FILE_SYNC_CORE_API FS_DelJobItem(HJOB hJob);
BOOL		FILE_SYNC_CORE_API FS_DllFree(void);
BOOL		FILE_SYNC_CORE_API FS_DllInitialize(void);
DWORD FILE_SYNC_CORE_API FS_ScanJobItem(HJOB hJob);
DWORD FILE_SYNC_CORE_API FS_SetErrorHandler();
DWORD FILE_SYNC_CORE_API FS_OnSystemShuttingDown(HWND hParentWnd);
//DWORD FILE_SYNC_CORE_API FS_GetJobItemStatus(HJOB hJob);


#if defined __cplusplus
};
#endif

#endif